import {evalEl} from "./auth";

/**
 * 获取当前面板UI数据
 * @param uidata 全部ui数据
 * @param tplKey 模板变量数据
 * @param openParam 加载ui时,界面只有开窗接口数据,其他表单或接口加载数据未执行
 */
export function changePanelUiVal(uidata, tplKey, openParam) {
  // 初始化默认呈现面板数据
  const showKey = changePanelUiValKey(uidata, tplKey, openParam)
  if (showKey !== null) {
    return uidata[showKey]
  }
  return null
}

/**
 * 获取当前面板UI变量
 * @param uidata 全部ui数据
 * @param tplKey 面板数据
 * @param openParam 加载ui时,界面只有开窗接口数据,其他表单或接口加载数据未执行
 */
export function changePanelElUiVal(uidata, tplKey, openParam) {
  // 初始化默认呈现面板数据
  const panelElList = uidata.panelElList[tplKey]
  let undefinedKey = null
  if (panelElList !== undefined) {
    for (const i in panelElList) {
      const panelEl = panelElList[i]
      const objEl = panelEl.objEl
      if (objEl === undefined) {
        undefinedKey = panelEl
      } else {
        const evalFlag = evalEl(objEl, openParam)
        if (evalFlag) {
          return panelEl
        }
      }
    }
    return undefinedKey
  }
  return null
}
/**
 * 获取当前面板UI变量
 * @param uidata 全部ui数据
 * @param tplKey 面板数据
 * @param openParam 加载ui时,界面只有开窗接口数据,其他表单或接口加载数据未执行
 */
export function changePanelUiValKey(uidata, tplKey, openParam) {
  // 初始化默认呈现面板数据
  let undefinedKey = null
  const panelEl = changePanelElUiVal(uidata, tplKey, openParam)
  if (panelEl !== null) {
    undefinedKey = panelEl.dataKey
  }
  return undefinedKey
}
